var express = require('express');
var formidable = require('formidable');//使用上传功能时需要下载的模板
var fs = require('fs');
var lk = require('../config/init');
AVATAR_UPLOAD_FOLDER = '/avatar/';
var router = express.Router();
//4:GET请求，查找所有记录
router.get('/index',function(req,res,next){
	lk.query("SELECT * FROM no2",function(err,result){
		if(err){
			res.send('查询错误');
		}else{
			res.render("index",{data:result});//将查询到的结果result发送到index.ejs页面,用data接收结果
		}
	});
});
//功能二：添加记录
//next是一个中间件，可以同时异步执行，减少阻塞
router.get('/index',function(req,res,next){
	res.render("index");//渲染index.ejs页面
});
router.post('/index',function(req,res,next){
	//获取到页面的各个属性
	//var uid = req.body.uid;
	var title=req.body.title;
  	var content=req.body.content;
  	var pudate=req.body.pudate;
  	var renew=req.body.renew;
  	//将获取到的属性添加到数据库中对应的位置
  	var sql="INSERT INTO no2(title,content,pudate,renew) VALUES ('"+title+"','"+content+"','"+pudate+"','"+renew+"')";
  	//console.log(sql);
  	lk.query(sql,function(err,result){
    	if(err){//如果失败返回
      	res.send("产品添加失败"+err);
    	}else{//如果成功重定向到index页面
      	res.redirect("/index");
		//res.render("/");
    }
  });
});
//功能三：删除记录
router.get("/delete/:uid",function(req,res,next){
	var uid = req.params.uid;
		var sql = "DELETE FROM no2 WHERE uid="+uid;
		lk.query(sql,function(err,result){
			if(err){
				res.send("删除失败"+err)
			}else{
				res.redirect("/index");//如果成功就重定向到当前页面
			}
		});
});
//功能四：更新修改
router.get("/toUpdate/:uid",function(req,res,next){
	var uid = req.params.uid;
	var sql = "SELECT * FROM no2 WHERE uid="+uid;
	//console.log(sql);
	lk.query(sql,function(err,result){
		if(err){
			res.send("数据读取失败"+err);
		}else{
			res.render("list",{data:result});
		}
	});
});
	//已经获取到该id的数据
router.post("/update",function(req,res,next){
	var uid = req.body.uid;
	var title=req.body.title;
	var content=req.body.content;
  	//var pudate=req.body.pudate;
  	var renew=req.body.renew;
	//console.log(req.body);
	var sql = "UPDATE no2 SET title='"+title+"',content='"+content+"',renew='"+renew+"' WHERE uid="+uid;//,pudate='"+pudate+"'
	//console.log(sql);
	lk.query(sql,function(err,result){
		if(err){
			res.send("更新失败"+err);
		}else {
			res.redirect("/index");
		}
	});
});
//功能五：模糊查询
router.post("/search",function(req,res,next){
	var title = req.body.title;
	//console.log(title);
	var sql = "SELECT * FROM no2 WHERE title LIKE '%"+title+"%'";//全部模糊查询
	lk.query(sql,function(err,result,next){
		if(err){
			res.send("查询失败："+err);
		}else{
			//console.log(result);
			res.render("index",{data:result,title:title});//enquiries
		}
	});
});

//功能六：图片上传
router.get('/upload',function(req,res){
	res.render("upload",{text:"点击上传",n:"空"});//ok选择文件，public下放图片
});
router.post('/upload',function(req,res){
	var form = new formidable.IncomingForm();//创建上传表单
	form.encoding = 'utf-8';
	form.Uploaddir = 'public' + AVATAR_UPLOAD_FOLDER;//设置上传目录   设置存储的位置  Uploaddir是上传文件临时存放的地方
	form.keepExtensions = true;	//保留上传文件的后缀名
	form.maxFieldsSize = 2 * 1024 * 1024;//限制上传文件大小
	form.parse(req,function(err,fields,files){
		if(err){
			res.locals.error = err;
			res.render('upload');//渲染到哪个个页面
			return;
		}
		var extName = '';//设置一个空的字符串      存储上传文件后缀名
		switch(files.fulAvatar.type){//设置允许上传图片的格式
			case 'image/pjpeg':extName = 'jpg';
				break;
			case 'image/jpeg':extName = 'jpg';
				break;
			case 'image/png':extName = 'png';
				break;
			case 'image/x-png':extName = 'png';
				break;
		}
		if(extName.length == 0){//判断上传文件时是否为这些格式或者为空，如果是：
			res.locals.erroe = '只支持png和jpg格式图片';
			res.render('index',{n:"空",text:'只支持png格式和jpg格式图片'});
			return;
		}
		var avatarName = Math.random() + '.' + extName;//随机图片名称+后缀名   =》新的图片的名称
		console.log(avatarName);
		var newPath = form.Uploaddir + avatarName;    //到文件夹的路径+新的图片名 //public+avatar+随机图片名
		var n = "/avatar/" + avatarName;// 拼接    上传路径=/文件夹+/图片名称+图片后缀名
		console.log(newPath);
		fs.renameSync(files.fulAvatar.path,newPath);//重新命名，放进去
		res.locals.success = '上传成功';
		res.render('upload',{n:n,text:'上传成功'});
	});
});
module.exports = router;